package com.booksystem.service;

import com.booksystem.common.RestResult;
import com.booksystem.dto.CreateOrderDTO;
import com.booksystem.dto.QueryOrderDetailDTO;
import com.booksystem.dto.UpdateOrderStatusDTO;
import com.booksystem.entity.OrderInfoDO;

/**
 * <p>
 *   订单服务接口
 * </p>
 * @author 段伟豪
 */
public interface OrderService {

    /**
     * 创建订单
     * @param createOrderDTO 创建订单参数
     * @return 统一响应结果
     */
    RestResult<Boolean> createOrder(CreateOrderDTO createOrderDTO);

    /**
     * 查询订单详情
     * @param queryOrderDetailDTO 查询订单详情参数
     * @return 统一响应结果
     */
    RestResult<OrderInfoDO> queryOrderDetail(QueryOrderDetailDTO queryOrderDetailDTO);

    /**
     * 更新订单状态
     * @param updateOrderStatusDTO 更新订单状态参数
     * @return 统一响应结果
     */
    RestResult<Boolean> updateOrderStatus(UpdateOrderStatusDTO updateOrderStatusDTO);

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 统一响应结果
     */
    RestResult<Boolean> cancelOrder(Long orderId);
}